package com.zhudi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhudi.commen.BaseResponse;
import com.zhudi.model.entity.Team;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhudi.model.entity.User;
import com.zhudi.model.request.TeamSearchRequest;
import com.zhudi.model.request.TeamUpdateRequest;
import com.zhudi.model.vo.TeamVO;

import java.util.List;


/**
* @author 朱朱朱朱蒂
* @description 针对表【team(队伍表)】的数据库操作Service
* @createDate 2024-03-23 22:52:41
*/
public interface TeamService extends IService<Team> {


    /**
     * 创建新的队伍
     * @param team 新建队伍的信息
     * @return 队伍id
     */
    long addTeam(Team team);

    /**
     * 检查队伍参数是否合法
     * @param team 要检查的队伍
     * @return 合法返回true
     */
    boolean isLegalTeam(Team team);


    /**
     * 根据条件搜索页面
     * @param teamSearchRequest 查询条件
     * @param loginUser 要判断的用户
     * @return 符合条件的队伍的所有信息
     */
    Page<TeamVO> searchTeamsByPage(TeamSearchRequest teamSearchRequest, User loginUser);

    /**
     * 更新队伍
     * @param teamUpdateRequest 更新信息
     * @return 成功true
     */
    boolean updateTeam(TeamUpdateRequest teamUpdateRequest);

    /**
     * 获取当前用户加入的队伍VO
     * @param loginUser 当前用户
     * @return list
     */
    List<TeamVO> getMyJoinTeam(User loginUser);
}
